package com.neuedu.corejava.ch12;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 
 * @author myh
 * @version 2019年8月14日上午9:27:37
 *
 */
public class FileCopyer {

	public static void main(String[] args) {
		String src = "D:\\论坛\\DS-Java\\database\\dsjava.sql";
		String desc = "D:\\io\\dsjava_copy.sql";
		copy(src, desc);
	}

	public static void copy(String src, String desc) {
		File f1 = new File(src);
		File f2 = new File(desc);
		copy(f1, f2);
	}

	public static void copy(File srcFile, File descFile) {
		// 检查源文件
		if (srcFile == null || !srcFile.exists()) {
			System.out.println("源文件不存在");
			return;
		}
		// 检查目标文件
		if (descFile == null) {
			System.out.println("目标为空");
			return;
		} else {
			descFile.getParentFile().mkdirs();
		}
		// 输入流和输出流
		FileInputStream fis = null;
		FileOutputStream fos = null;

		try {
			fis = new FileInputStream(srcFile);
			fos = new FileOutputStream(descFile);
			byte[] b = new byte[128];
			int length = fis.read(b);

			while (length != -1) {
				// 循环写数据，直到文件写完
				fos.write(b, 0, length);
				// 循环读数据，直到文件读完
				length = fis.read(b);
			}

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (fos != null) {
				try {
					fos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if (fis != null) {
				try {
					fis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}

}
